更新时间:2023-11-23 10:01
int整型是计算机编程语言中的一种基本数据类型,通常反映了所用机器中整数的最自然长度。int整型可以划分为带符号的(signed)和无符号的(unsigned)两种,带符号类型可以表示正数、负数或0,无符号类型则仅能表示大于等于0的值。在默认情况下声明的整型变量都是有符号的类型,如果需声明无符号类型的话就需要在类型前加上unsigned关键字。
unsigned int是计算机编程语言中一种表示大于等于0的整数类型。
针对不同的计算机系统,unsigned int类型所占的比特数不同,它所能表示的数据范围也不一样。具体的取值范围如下:
其中的UNSIGNED表示,数据项server_id的数据范围为0~4294967295。
如果整数太大,超出了整数类型的范围会产生溢出现象。下面分别将有符号整型和无符号整型设置为最大允许值加略大一些的值,观察溢出现象:
由以上结果可知,unsigned int溢出后数值回到“起始点”0,而int溢出后数值回到“起始点”-2147483648。应当注意的是,当变量溢出时,系统并没有给出提示,所以编程时需要程序员自己处理这个问题。
如果表达式里既有带符号类型又有无符号类型,当带符号类型取值为负时会出现异常结果,这是因为带符号数会自动地转换成为无符号数。例如一个形如 a*b 的式子中,如果 a=-1,b=1,而且a,b都是int类型,则表达式的值显然为-1,然而如果a是int,而b是unsigned int,则结果须视在当前机器上int所占位数而定,在32位计算机系统中,结果是4294967295。